package main

import (
	"encoding/json"
	"log"
	"time"

	MQTT "github.com/eclipse/paho.mqtt.golang"
)

func main() {
	// MQTT客户端配置
	opts := MQTT.NewClientOptions()
	opts.AddBroker("tcp://39.98.48.132:1883")
	opts.SetClientID("test_publisher")
	opts.SetUsername("zifeng2")
	opts.SetPassword("zifeng123")

	// 创建客户端
	client := MQTT.NewClient(opts)

	// 连接
	if token := client.Connect(); token.Wait() && token.Error() != nil {
		log.Fatalf("连接失败: %v", token.Error())
	}
	defer client.Disconnect(250)

	log.Println("MQTT连接成功，开始发送测试消息...")

	// 测试数据
	testData := map[string]interface{}{
		"temperature": 25.5,
		"status":      "normal",
		"timestamp":   time.Now().Unix(),
		"deviceId":    "test_device",
	}

	// 转换为JSON
	jsonData, err := json.Marshal(testData)
	if err != nil {
		log.Fatalf("JSON序列化失败: %v", err)
	}

	// 发送消息到测试主题
	topic := "data/YHhongtian/tdorecord/test_device"
	token := client.Publish(topic, 2, false, jsonData)
	token.Wait()

	if token.Error() != nil {
		log.Fatalf("发送消息失败: %v", token.Error())
	}

	log.Printf("成功发送消息到主题: %s", topic)
	log.Printf("消息内容: %s", string(jsonData))
}
